An example of either information transmitted in a communication system or information recorded in a storage device is an image or a moving image. In the related art, in order to transmit and store the image (hereinafter, including the moving image), a technology of coding the image has been known.
As moving image coding schemes, H.264/MPEG-4, AVC, and high-efficiency video coding (HEVC) that is succeeding codec have been known (NPL 1).
In such a moving image coding scheme, images (pictures) constituting the moving image are managed, and coded/decoded by a hierarchical structure which is constituted by slices obtained by splitting an image, coding tree blocks (hereinafter, referred to as a CTB) obtained by splitting the slice, and coding units obtained by recursively quad-splitting the CTB.
Further, the coding unit (hereinafter referred to as CU) is further appropriately split to conversion units for managing a process for a transform coefficient and prediction units for managing a process for a predicted image.
Further, in these moving image coding schemes, normally, a predicted image is generated based on a local decoded image obtained by coding/decoding an input image, and a prediction residual (also referred to as “a difference image” or “a residual image”) obtained by subtracting the predicted image from the input image (an original image) is coded through orthogonal transformation and quantization.
Examples of a generation method of the predicted image described above include an inter-picture prediction (inter-prediction) and an intra-picture prediction (intra-prediction).
In the inter-prediction, the predicted image is generated by inter-frame motion compensation. In contrast, in the intra-prediction, the predicted images of a frame are sequentially generated, based on the local decoded image in the same frame.
Further, in HEVC, a prediction unit size of the motion compensation in inter-prediction is represented by a combination of split by CU and a split type to be signaled for each CU.
Further, in recent years, a hierarchical coding technology for hierarchically coding an image according to a required data rate has been proposed.
Examples of the hierarchical coding method include an H.264/AVC Annex G Scalable Video coding (SVC) as the standard of ISO/IEC and ITU-T.
The SVC supports spatial scalability, temporal scalability, and SNR scalability. For example, in a case of the spatial scalability, first, an image obtained by down-sampling an original image to a desired resolution is coded as a lower layer in the H.264/AVC. In addition, a lower layer referred to in a target layer to be decoded is termed a reference layer. Next, in the target layer, inter-layer prediction is performed in order to remove redundancy between layers. Examples of the inter-layer prediction include motion information prediction that predicts information regarding the motion prediction, from information regarding the reference layer at the same time, or texture prediction that performs prediction from an image obtained by up-sampling a decoded image of the reference layer at the same time (NPL 2). In the motion information prediction, motion information is coded, with the motion information (a motion vector or the like) of a reference layer as an estimation value.
Further, according to NPL 1, the following concepts are defined in order to indicate a function or a parameter regarding a range of coded data (or hierarchically coded data) of an image that an image decoding device (decoder) can handle (can decode).
(1) “profile” defining a combination of coding tools (element technology), assuming a specific application
(2) “level” defining limits of parameters (configuring information), in accordance with the size of an image, and the like
The profile defines a set of coding tools (element technology) required for decoding coded data of a coded image. Since the profile has been defined, only a suitable profile rather than the entire specification may be implemented in an individual application, and there is an advantage of being able to reduce the complexity of the decoder/encoder.
Further, the level defines the capability of a decoder and the complexity of a bit stream. For example, the level defines the decoder's decoding speed for the bit stream. Further, the level defines a range of supporting a tool defined in each profile. Therefore, it is necessary to support the lower level, in the higher level.
For example, in NPL 1, as illustrated in FIG. 28, various parameters limited by the levels include a maximum luminance sample rate (Max luma sample rate), a maximum luminance picture size (Max luma picture size), a maximum bit rate (Max bitrate), a maximum CPB size (Max CPB size), a minimum compression ratio (Min compression Ratio), a maximum number of slices per picture (Max slices per picture), and the like. In addition, a sub-concept of the level includes “tier” indicating whether the maximum bit rate of a bit stream (coded data) corresponding to each level and the maximum CPB size for storing a bit stream are values defined by a main tier (for consumer) or values defined by a high tier (for business).
For example, in NPL 1, the main profile is defined as a profile. In the main profile, for example, constraints of the coding tool illustrated in FIG. 29(a) are defined. Further, in the main profile, additional level limits illustrated in FIG. 29(b) are defined in addition to the limits defined by the level illustrated in FIG. 28.
Further, in NPL 1, a profile to which a bit stream conforms is designated by a profile identifier general_profile_idc (SYNZ103 in FIG. 30) in the profile/level information profile_tier_level( ) illustrated in FIG. 30. For example, when a bit stream conforms to the main profile, the value of the general_profile_idc is set to 1.
Further, there is general_profile_compatibility_flag[i] (SYNZ104 in FIG. 30) indicating whether or not a decoder conforming to a profile other than the profiles designated by the profile identifier general_profile_idc can decode a current bit stream. For example, if a profile is compatible with the main profile, general-profile-compatibility-flag [1]=1 is set.
Further, whether or not a level indicating the complexity of the bit stream or the capability of a decoder required for decoding the bit stream conforms to any level of FIG. 28 is designated by a level identifier general_level_idc (SYNZ106 in FIG. 30) in the profile/level information profile_tier_level( ). For example, when the value of the level identifier general_level_idc indicates “61”, it indicates that the level corresponds to level 6.1 in FIG. 28; and when the value of the level identifier general_level_idc indicates “10”, it indicates that the level corresponds to level 1 in FIG. 28. In other words, a tens digit (second digit) and units digit (first digit) of the value indicated by the level identifier general_level_idc respectively correspond to the integer and the value of the decimal point of the level in FIG. 28.
Further, the levels designated by the level identifier general_level_idc include a tier flag general_tier_flag (SYNZ102 in FIG. 30) indicating whether a tier is the main tier or the high tier. When the value of the tier flag general_tier_flag is 0, it indicates the main tier, and when the value is 1, it indicates the high tier.
Further, in the profile/level information profile_tier_level( ) illustrated in FIG. 30, if the sublayer profile present flag sub_layer_profile_present_flag[i] (SYNZ107 in FIG. 30) and the sublayer level present flag sub_layer_level_present_flag[i] (SYNZ108 in FIG. 30) are both 1, the profile information (hereinafter, also referred to as sublayer profile information, SYNZ111, SYNZ112, SYNZ110, SYNZ109, and SYNZ113 in FIG. 30) and the level information (hereinafter, referred to as sublayer level information, syntax SYNZ114 in FIG. 30) for each layer regarding time scalability (hereinafter, also referred to as a sublayer) can explicitly be designated.
In addition, in NPL 1, the profile/level information profile_tier_level( ) is signaled in both parameter sets of a video parameter set VPS illustrated in FIG. 7(a) and a sequence parameter set SPS illustrated in FIG. 7(b).